Skip to content

ci(create): assert the monorepo library emits declarations#2171

Merged
wan9chi merged 1 commit into
mainfrom
ci/monorepo-dts-gate
Jul 15, 2026
Merged

ci(create): assert the monorepo library emits declarations#2171
wan9chi merged 1 commit into
mainfrom
ci/monorepo-dts-gate

Conversation

@wan9chi

@wan9chi wan9chi commented Jul 14, 2026

Copy link
Copy Markdown
Member

Summary

Adds a declaration-output assertion to the vp create monorepo CI jobs: after vp run ready, packages/utils/dist/index.d.mts must exist.

Why

A green vp run ready only proves the build exited 0. Declaration generation can degrade silently — generator skipped, output landing in the wrong place — while the exit code stays clean, which would ship type-less libraries from every freshly created monorepo without CI noticing.

Since #2168 the monorepo template scaffolds TypeScript 7, so the utils library's vp pack runs dts through tsdown's native-compiler (tsgo) path — the machinery that broke in #2160. This assertion turns the four create jobs into an end-to-end regression gate for that path across pnpm/npm/yarn/bun.

Notes

  • The emitted file is index.d.mts (paired with the ESM index.mjs bundle), not index.d.ts — verified against a local-registry build of main:
    ℹ Emit types with typescript@7.0.2
    ℹ dist/index.mjs    0.10 kB
    ℹ dist/index.d.mts  0.08 kB
    

🤖 Generated with Claude Code

A green `vp run ready` proves the build exited 0, but declaration
generation can degrade silently (skipped generator, wrong output
location) while the exit code stays clean. Pin the deliverable: after
the build, packages/utils/dist/index.d.mts must exist.

With the monorepo template now scaffolding TypeScript 7 (#2168), this
makes the create jobs an end-to-end regression gate for the native
compiler (tsgo) dts path that broke in #2160. Verified against a real
local-registry build: `vp pack` emits dist/index.d.mts (not .d.ts)
next to the ESM bundle.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@netlify

netlify Bot commented Jul 14, 2026

Copy link
Copy Markdown

Deploy Preview for viteplus-preview canceled.

Name Link
🔨 Latest commit 71c13e8
🔍 Latest deploy log https://app.netlify.com/projects/viteplus-preview/deploys/6a56013cc4680b0007d275b9

@wan9chi wan9chi added test: e2e Auto run e2e tests test: install-e2e run vite install e2e test test: sfw test: create-e2e Run `vp create` e2e tests labels Jul 14, 2026
@wan9chi wan9chi requested a review from cpojer July 14, 2026 09:48
@wan9chi wan9chi merged commit 7b8f564 into main Jul 15, 2026
133 of 164 checks passed
@wan9chi wan9chi deleted the ci/monorepo-dts-gate branch July 15, 2026 06:13
wan9chi added a commit that referenced this pull request Jul 16, 2026
)

Release vite-plus v0.2.5: Cleaner environments and more reliable
workflows.

This release adds cleanup and package version commands, supports
TypeScript 7 declaration generation, reduces the standalone binary size,
and hardens task tracking, CLI output, package-manager routing, Docker
workflows, and project scaffolding.

### Highlights

- Add `vp env clean` to remove unused managed Node.js runtimes and
package-manager caches
([#2003](#2003)), by
@liangmiQwQ
- Add `vp pm version`, forwarding native version commands to npm, pnpm,
Yarn, and Bun
([#2127](#2127)), by
@jong-kyung
- Add TypeScript 7 support to declaration generation and generated
library projects with tsdown `0.22.7`
([#2104](#2104),
[#2168](#2168)), by
@wan9chi
- Improve automatic task input tracking for Bun on macOS, Linux
containers with constrained `/dev/shm`, and Windows process images,
reduce Windows backing-file allocation, and clarify task wait failures
([vite-task#515](voidzero-dev/vite-task#515),
[vite-task#518](voidzero-dev/vite-task#518),
[vite-task#523](voidzero-dev/vite-task#523),
[vite-task#524](voidzero-dev/vite-task#524),
[vite-task#542](voidzero-dev/vite-task#542),
[#2126](#2126),
[#2167](#2167)), by
@wan9chi
- Prevent CLI diagnostics from truncating or panicking when inherited
standard output or error is nonblocking
([#2172](#2172),
[#2173](#2173)), by
@wan9chi

### Fixes & Enhancements

- Reduce standalone `vp` binary sizes by about 5% on Linux and macOS and
19% on Windows
([#2043](#2043)), by
@fengmk2
- Keep the Docker image non-root by default while allowing passwordless
`sudo` for Playwright browser dependencies and system packages
([#2088](#2088)), by
@fengmk2
- Ignore `.env` and `.env.*` in generated projects while keeping
`.env.example` trackable
([#2095](#2095)), by
@forehalo
- Create `vp-use.cmd` after the Windows environment bin directory is
ready and document its Command Prompt-only usage
([#2128](#2128)), by
@liangmiQwQ
- Render user-facing process statuses and paths without Rust debug
wrappers ([#2130](#2130)),
by @liangmiQwQ
- Make `vp dedupe` fall back to `yarn install` with a warning on Yarn
Classic ([#2139](#2139)),
by @jong-kyung
- Ensure package-manager child processes, including Bun, can always find
the managed Node.js runtime
([#2158](#2158)), by
@BlankParticle

### Docs

- Update the release-manager post-release guidance
([#2096](#2096)), by
@wan9chi
- Add Windows to the Namespace sponsor credit
([#2108](#2108)), by
@fengmk2
- Document installer and runtime environment variables, registry
settings, TLS options, and precedence rules
([#2114](#2114)), by
@yukinoshi
- Mark shell examples in `CONTRIBUTING.md` as Bash code blocks
([#2159](#2159)), by
@BlankParticle

### Chore

- Assign prepared release PRs to the workflow actor
([#2094](#2094)), by
@wan9chi
- Complete the PTY snapshot migration and harden the runner, fixtures,
release-version redaction, registry teardown, timeouts, and Linux
parallelism
([#2071](#2071),
[#2080](#2080),
[#2084](#2084),
[#2099](#2099),
[#2102](#2102),
[#2103](#2103),
[#2107](#2107),
[#2109](#2109),
[#2115](#2115),
[#2117](#2117),
[#2118](#2118),
[#2119](#2119),
[#2120](#2120),
[#2121](#2121),
[#2131](#2131),
[#2132](#2132),
[#2134](#2134),
[#2137](#2137),
[#2138](#2138),
[#2141](#2141),
[#2143](#2143),
[#2145](#2145),
[#2182](#2182)), by
@fengmk2 and @wan9chi
- Expose Vite+ managed binaries consistently inside snapshot fixtures
([#2110](#2110)), by
@liangmiQwQ
- Exclude PTY snapshot configuration from Vitest discovery and remove
the legacy snapshot infrastructure
([#2135](#2135),
[#2146](#2146)), by
@jong-kyung
- Modernize Windows runners, registry bridge publishing, native size
reporting, merge-base comparisons, and package-manager installation CI
([#2083](#2083),
[#2100](#2100),
[#2105](#2105),
[#2106](#2106),
[#2112](#2112),
[#2133](#2133)), by
@fengmk2
- Verify that created monorepo libraries emit declarations in CI
([#2171](#2171)), by
@wan9chi

### Bundled Versions

| Tool | Version | Source |
| --------------- | ------- |
-----------------------------------------------------------------------
|
| vite | `8.1.4` |
[`a477454`](vitejs/vite@a477454)
|
| rolldown | `1.1.5` |
[`f09947a`](rolldown/rolldown@f09947a)
|
| tsdown | `0.22.7` | [npm](https://npmx.dev/package/tsdown/v/0.22.7) |
| vitest | `4.1.10` | [npm](https://npmx.dev/package/vitest/v/4.1.10) |
| oxlint | `1.73.0` | [npm](https://npmx.dev/package/oxlint/v/1.73.0) |
| oxlint-tsgolint | `0.24.0` |
[npm](https://npmx.dev/package/oxlint-tsgolint/v/0.24.0) |
| oxfmt | `0.58.0` | [npm](https://npmx.dev/package/oxfmt/v/0.58.0) |

### Upgrade

```bash
vp upgrade
```

### New Contributors

Welcome @yukinoshi and @BlankParticle.

**Full Changelog**:
v0.2.4...v0.2.5

---

Merging this PR will trigger the release workflow.

---------

Co-authored-by: voidzero-guard[bot] <278573678+voidzero-guard[bot]@users.noreply.github.com>
Co-authored-by: wan9chi <dk4rest@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test: create-e2e Run `vp create` e2e tests test: e2e Auto run e2e tests test: install-e2e run vite install e2e test test: sfw

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants